// pages/commodity/commodity.js
const app = getApp()
import config from '../../utils/config.js';
import util from '../../utils/util.js';
import Toast from '../../vant/toast/toast';
import Dialog from '../../vant/dialog/dialog';
import {
  comModel
} from '../../models/com';
const com = new comModel();

import {
  indexModel
} from '../../models/index';
const index = new indexModel();


Page({

  /**
   * 页面的初始数据
   */
  data: {
    config: config,
    height: app.globalData.height,
    barheight: app.globalData.barheight,
    realWindowHeight: app.globalData.realWindowHeight,
    sysBottom: app.globalData.bottom,
    activeIdx: 1,
    scroll_height:'',
    selectTop:false,  // false 找商家 true 找供应商

    roleType: '', // 角色类别 1食堂人员,2档口人员
    stallPriceStatus: '', // 是否显示价格 1显示

    mulist:[
      {id:"全部",categoryName:"全部"}
    ],
    selectMu:'全部',  //当前选择一级菜单标识
    selectMu2:'', //当前选择二级菜单标识

    show:false,

    timer:'',
    name:'',

    topNum:0,   // 滚动条距高

    allPage: 0, // 所有页数
    page: 1, // 第几页
    endFlag: false, // 是否到最后
    dataList: [], // 商品列表
    searchWord:'',

    goodListVoList:[],  // 商品规格列表
    unit:'', // 商品规格
    priceRange:'', // 商品规格价格
    good:{}, // 选择规格

    allPage2: 0, // 所有页数
    page2: 1, // 第几页
    endFlag2: false, // 是否到最后
    dataList2: [], // 供应商列表

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // 隐藏原生的tabbar
    wx.hideTabBar()
    this.data.fLoad = true

    // 设置content高度
    var scroll_height = this.data.realWindowHeight-this.data.barheight-this.data.height-(49+this.data.sysBottom);
    this.setData({
      scroll_height: scroll_height
    })
    this.getAuth()
  },
  getAuth() {
    var _this = this
    wx.request({
      url: config.projectUrl + 'canteen/canteen/currentCanteenInfo',
      method: 'get',
      header: {
        'authentication': wx.getStorageSync('authentication')
      },
      success: function (res) {
        if(res.data.code == '402'){
          Dialog.confirm({
            title: '提示',
            message: '您还未登录，请先登录再进行操作',
            confirmButtonText: '确定',
            cancelButtonText: '取消'
          }).then(() => {
            wx.reLaunch({
              url: '/pages/login/login'
            })
          }).catch(() => {
            // on cancel
          });
        }else{
          var userInfo = wx.getStorageSync('userInfo');
          _this.setData({
            roleType: userInfo.roleType,
            stallPriceStatus: res.data.data.stallPriceStatus
          })
          _this.getcategoryList();
          _this.getList2();
        }
      }
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    if(!this.data.fLoad){
      this.setData({
        topNum: 0,
        allPage: 0,
        page: 1,
        endFlag: false,
        dataList: [],
        mulist: [
          {id:"全部",categoryName:"全部"}
        ],
        page2: 1,
        dataList2: [],
        endFlag2: false
      })
      // this.data.topNum = 0,
      // this.data. allPage = 0, // 所有页数
      // this.data.page = 1, // 第几页
      // this.data.endFlag = false, // 是否到最后
      // this.data.dataList = [], // 商品列表
      // this.data.mulist = [
      //   {id:"全部",categoryName:"全部"}
      // ],
      // this.data.page2=1,
      // this.data.dataList2=[],
      // this.data.endFlag2=false,

      this.getAuth()
    }
    this.data.fLoad = false
    var classifyId = app.globalData.classifyId;
    if(classifyId){
      this.setData({
        selectMu: classifyId || '',
        selectTop:false
      })
      this.reData();
      this.getList();
    }
  },
  // 一键添加
  onAddAll:util.throttle(function(e) {
    var _this = this
    Dialog.confirm({
      message: '是否确认一键添加所有？',
      overlayStyle: "background: rgba(0,0,0,.3)!important;"
    }).then(() => {
      com.addProductToCheckList({
        categoryId: this.data.selectMu2?this.data.selectMu2:(this.data.selectMu=="全部"?'':this.data.selectMu),
      },function(res){
        Toast.success('操作成功');
        _this.reData();
        _this.getList();
      })
    }).catch(() => {
      // on cancel
    });
  }),
  
  // 商品选择
  seletPar(){
    this.setData({ selectTop:false })
  },

  // 供应商选择
  seletPar2(){
    wx.pageScrollTo({
      scrollTop: 0,
      duration: 50
    })
    this.setData({ selectTop:true })
    
  },

  // 点击一级菜单
  onTopMu(e){
    var id = e.currentTarget.dataset.id;
    this.setData({
      selectMu2:'',
      topNum:0
    })
    if(this.data.selectMu==id){
        this.reData();
        this.getList();
        return
    }else{
      this.setData({
        selectMu:id
      })
    }
    this.reData();
    this.getList();
   
  },

  // 点击二级菜单
  onTopTwe(e){
    var id = e.currentTarget.dataset.id;
    this.setData({
      selectMu2:id,
      topNum:0
    })
    this.reData();
    this.getList();
  },

  // 选择规格
  selectMore(e){
    this.setData({
      show:true
    })
    var productId = e.currentTarget.dataset.id;
    var dataList = this.data.dataList;
    for(var i=0;i<dataList.length;i++){
      if(dataList[i].productId == productId){
        this.setData({
          goodListVoList:dataList[i].goodListVoList,
          unit:dataList[i].unitName,
          good:dataList[i].goodListVoList[0]
        })
      }
    }
  },
  // 选中规格
  selectGood(e){
    var goodId = e.currentTarget.dataset.id;
    var goodListVoList = this.data.goodListVoList;
    for(var i=0;i<goodListVoList.length;i++){
      if(goodListVoList[i].goodId == goodId){
        this.setData({
          good:goodListVoList[i]
        })
      }
    }
  },
  // 单个规格移除清单
  removeSelect: util.throttle(function (e){
    var productId = e.currentTarget.dataset.id;
    var dataList = this.data.dataList;
    for(var i=0;i<dataList.length;i++){
      if(dataList[i].productId == productId){
        this.setData({
          good:dataList[i].goodListVoList[0]
        })
      }
    }
    this.getRemoveCheck();
  }),
  // 移除清单
  getRemoveCheck(){
    var _this = this
    Dialog.confirm({
      message: '确定移出清单？',
      overlayStyle: "background: rgba(0,0,0,.3)!important;"
    }).then(() => {
      com.apiDeletecheck({goodId:this.data.good.goodId}, res => {
        Toast.success('操作成功');
        _this.setData({
          show:false
        })
        _this.reData();
        _this.getList();
      })
    }).catch(() => {
      // on cancel
    });
    
  },
  // 单个规格加入清单
  selectOne(e){
    var productId = e.currentTarget.dataset.id;
    var dataList = this.data.dataList;
    for(var i=0;i<dataList.length;i++){
      if(dataList[i].productId == productId){
        this.setData({
          good:dataList[i].goodListVoList[0]
        })
      }
    }
    this.getAddcheck();
  },
  onCancel(){
    this.setData({
      show:false
    })
  },

  // 多规格操作
  onPopupMore: util.throttle(function (e) {
    if(this.data.good.checkListStatus==0){ // 加入清单
      this.getAddcheck()
    }else{ // 移除清单
      this.getRemoveCheck();
    }
  }),

  // 加入清单
  getAddcheck(){
    Dialog.confirm({
      message: '确定加入清单？',
      overlayStyle: "background: rgba(0,0,0,.3)!important;"
    }).then(() => {
      com.apiAddcheck({goodId:this.data.good.goodId}, res => {
        Toast.success('操作成功');
        this.setData({
          show:false
        })
        this.reData();
        this.getList();
      })
    }).catch(() => {
      // on cancel
    });
    
  },

  // 供应商商品
  onCommlist: util.throttle(function (e) { 
    var id = e.currentTarget.dataset.id;
    wx.navigateTo({
      url: '/pages/commodity/commoditySup/commoditySup?type=1&id='+id,
    })
  }),

  // 获取所有分类
  getcategoryList(){
    com.apiCategoryList({}, res => {
      this.setData({
        mulist:this.data.mulist.concat(res)
      })
      console.log(this.data.mulist);
      this.getList();
    })
  },

  // 搜一搜
  searchInput(event){
    clearTimeout(this.data.timer)
    var that = this;
    if(this.data.selectTop){
      this.setData({
        timer: setTimeout(function(){
          that.setData({
            topNum:0,
            page2:1,
            dataList2:[],
            endFlag2: false,
            searchWord:event.detail.value
          })
          that.getList2();
        },1*1000)
      })
    }else{
      this.setData({
        timer: setTimeout(function(){
          that.setData({
            // topNum:0,
            page:1,
            dataList:[],
            endFlag: false,
            searchWord:event.detail.value
          })
          that.getList();
        },1*1000)
      })
    }
    
  },

  // 找商品
  getList(){
    index.apiProduct({
      page: this.data.page,
      searchWord:this.data.searchWord,
      categoryId:this.data.selectMu2?this.data.selectMu2:(this.data.selectMu=="全部"?'':this.data.selectMu),
      limit: 10,
    }, res =>{
      if (res.list.length > 0) {
        var page = this.data.page;
        var endFlag = false;
        var allPage = res.allPage;
        if (page == allPage) {
          endFlag = true;
        } else {
          page += 1;
        }
        var dataList = this.data.dataList;
        if (page != 1) {
          dataList = dataList.concat(res.list);
        } else {
          dataList = res.list;
        }
        this.setData({
          dataList: dataList,
          endFlag: endFlag,
          page: page
        });
      }
    })
  },

  // 商品滑动至底部
  producScroll(){
    if(this.data.selectTop){
      if (this.data.endFlag2) {
        // util.msg('没有更多了~');
        return;
      } else {
        this.getList2();
      }
    }else{
      if (this.data.endFlag) {
        util.msg('没有更多了~');
        return;
      } else {
        this.getList();
      }
    }
  },

  // 初始化商品列表
  reData(){
    this.setData({
      allPage: 0, // 所有页数
      page: 1, // 第几页
      endFlag: false, // 是否到最后
      dataList: [], // 商品列表
    })
  },

  // 找供应商
  getList2(){
    com.apiSupplierPage({
      page: this.data.page2,
      searchWord:this.data.searchWord,
      limit: 15,
    }, res =>{
      if (res.list.length > 0) {
        var page = this.data.page2;
        var endFlag = false;
        var allPage = res.allPage;
        if (page == allPage) {
          endFlag = true;
        } else {
          page += 1;
        }
        var dataList = this.data.dataList2;
        if (page != 1) {
          dataList = dataList.concat(res.list);
        } else {
          dataList = res.list;
        }
        this.setData({
          dataList2: dataList,
          endFlag2: endFlag,
          page2: page
        });
      }
    })
  },

  // 清单
  onDetailed: util.throttle(function (e) { 
    wx.navigateTo({
      url: '/pages/coreAdmin/detailedList/detailedList',
    })
  }),

  // 商品详情
  onDetail: util.throttle(function (e) {
    var productId = e.currentTarget.dataset.id
    if (productId) 
      wx.navigateTo({
        url: '/pages/commodity/commodityInfo/commodityInfo?productId=' + productId+'&addt=1',
      })
  }),
  
  // 搜索
  searchTo(){
    wx.navigateTo({
      url: '../search/searchList/searchList?type=2',
    });
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    app.globalData.classifyId = '';
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    this.setData({
      topNum:0,
      allPage: 0, // 所有页数
      page: 1, // 第几页
      endFlag: false, // 是否到最后
      dataList: [], // 商品列表
      mulist:[
        {id:"全部",categoryName:"全部"}
      ],
    })
    this.onLoad();
    //模拟加载 		
    setTimeout(function () {		
      wx.hideNavigationBarLoading() //完成停止加载 			
      wx.stopPullDownRefresh() //停止下拉刷新 		
    }, 1500);
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    this.producScroll()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})